Skip to content

Cast pushdown for duckdb#8620

Open
myrrc wants to merge 1 commit into
developfrom
myrrc/duckdb-cast-pushdown
Open

Cast pushdown for duckdb#8620
myrrc wants to merge 1 commit into
developfrom
myrrc/duckdb-cast-pushdown

Conversation

@myrrc

@myrrc myrrc commented Jun 29, 2026

Copy link
Copy Markdown
Contributor
  • Backport of Push down type casts to file readers duckdb/duckdb#22788 to push down casts, optimizer pass. Extract both passes common parts to optimizer.cpp
  • Map 8- and 16-bit types in sqllogictest runner to INTEGER.
  • Add tracing subscriber logging to sqllogictest runner to support RUST_LOG=debug.
  • Support of cast pushdown on Rust side. U128/I128 are not pushed.

Depends on #8621

@myrrc myrrc added changelog/feature A new feature ext/duckdb Relates to the DuckDB integration labels Jun 29, 2026
@myrrc myrrc linked an issue Jun 29, 2026 that may be closed by this pull request
6 tasks
@myrrc myrrc marked this pull request as ready for review June 29, 2026 13:14
@myrrc myrrc requested review from a team and 0ax1 June 29, 2026 13:14
@myrrc myrrc force-pushed the myrrc/duckdb-cast-pushdown branch from a3ecf3a to 2ae987d Compare June 29, 2026 13:17
@codspeed-hq

codspeed-hq Bot commented Jun 29, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 5 improved benchmarks
❌ 2 regressed benchmarks
✅ 1588 untouched benchmarks
⏩ 4 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation chunked_varbinview_into_canonical[(1000, 10)] 168.9 µs 205.6 µs -17.84%
Simulation slice_empty_vortex 339.4 ns 397.8 ns -14.66%
Simulation bitwise_not_vortex_buffer_mut[128] 273.6 ns 215.3 ns +27.1%
Simulation bitwise_not_vortex_buffer_mut[1024] 333.9 ns 275.6 ns +21.17%
Simulation bitwise_not_vortex_buffer_mut[2048] 427.8 ns 369.4 ns +15.79%
Simulation chunked_varbinview_canonical_into[(100, 100)] 259.5 µs 224.4 µs +15.66%
Simulation chunked_varbinview_into_canonical[(100, 100)] 306.5 µs 271.3 µs +12.98%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing myrrc/duckdb-cast-pushdown (eda2b58) with develop (4a90e13)

Open in CodSpeed

Footnotes

  1. 4 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@myrrc myrrc force-pushed the myrrc/duckdb-cast-pushdown branch from 2ae987d to c7fd89e Compare June 29, 2026 13:17
@0ax1

0ax1 commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

What about constant+bool arrays?

Comment thread vortex-array/src/arrays/bool/compute/cast.rs
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
@myrrc myrrc force-pushed the myrrc/duckdb-cast-pushdown branch from c7fd89e to eda2b58 Compare June 30, 2026 11:36
@myrrc myrrc requested a review from 0ax1 June 30, 2026 12:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature ext/duckdb Relates to the DuckDB integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Epic: Duckdb projection expression pushdown

2 participants